Telephone/Transaction Entry Device and System for Entering Transaction Data into Databases

ABSTRACT

A data transaction processing system in which transaction data is entered by the user in response to prompts in a template which is tailored to each user application. The template and entered data are accumulated into data transactions which are immediately transmitted upon completion to an external database server for processing and storage. The data transactions are not locally stored for processing, and no conventional operating system is necessary. No local processing needs to be provided, and the only local storage is a flash PROM which stored the control firmware, a flash memory which stores the data streams making up the forms and menus, and a small RAM which operates as an input/output transaction buffer for storing the data streams of the template and the user replies to the prompts during assembly of a data transaction. The data transaction is received via standard protocols at a database server which, depending upon the application, stores the entire data transaction, explodes the data transaction to produce ancillary records which are then stored, and/or forwards the data transaction or some or all of the ancillary records to other database servers for updating other databases associated with those database servers. Also, in response to requests from the transaction entry device, the database server may return data streams for use in completing the fields in the data transaction or in presenting a menu on the display which was read in from the database server or a remote phone mail system. The transaction entry device is integrated with a telephone and is accessed via a touch screen, an optional keyboard, a magnetic card reader, voice entry, a modem, and the like.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a system for automatically capturingdata at the point of transaction and storing that data in theappropriate database(s), and more particularly, to a data transactionprocessing system including a transaction entry device which canselectively operate in a telephone mode and a transaction entry mode. Inthe telephone mode, the transaction entry device operates as aconventional telephone. However, in the transaction entry mode, menusare used to navigate the user to forms which facilitate the entry ofdata. The entered data and forms together form data transactions whichare transmitted to one or more databases for processing and storage. Thedatabase(s) also “explodes” the data transactions into their componentparts and transmits those component parts to still other databases forprocessing and storage so that the data in the data transactionsautomatically updates all current database items affected by such data.

2. Description of the Prior Art

The telephone has become an increasingly versatile instrument. Thefunctionality of telephones has been expanded by incorporating thefunctions of answering machines, facsimile machines, and the like.Point-of-entry systems have also been developed which incorporatecomputer processing capabilities into conventional telephones. Forexample, a computer/telephone apparatus is described in U.S. Pat. Nos.5,195,130, 5,008,927, and 4,991,199 which configures a telephone as aprogrammable microcomputer which is operated through the standardtelephone 12-key keypad. A programmable gate array is reconfigured toaccommodate various types of software which require different hardwareconfigurations but without actually reconfiguring the hardware. Thereconfiguration data is received from a network host computer and isused by the programmable microcomputer to emulate the hardware of any ofa plurality of service bureaus which communicate with the network hostcomputer. In this manner, the telephone/computer is configured tocommunicate data to/from any of a number of different service bureausvia conventional telephone lines.

However, telephone/computer systems of the type described in theafore-mentioned patents are typically quite complicated and expensiveand are limited by the types of operating software which can bedownloaded from the network host computer. Also, such telephone/computersystems are relatively slow since the microcomputer must be reconfiguredbefore it will permit communication with the requested service bureau.Because of these characteristic features, such telephone/computersystems are typically used in public locations and are not efficient forcreating point-of-entry transactions in typical commercial or privatesettings. A point-of-entry transaction system is desired which does nothave such limitations and which is operating system independent.

Elimination of the requirement of a conventional operating system andthe associated application programs for the microcomputer of a dataentry device would greatly decrease the cost of such a device. However,to date, this has not been possible because the operating system isneeded to run the application programs which control the datacommunications and together handle discrete parts of the system.Unfortunately, such application programs require substantial amounts oflocal memory and substantial processing power for performing the desiredfunctions. Also, the operating systems themselves tend to be quitecostly to purchase and maintain.

Accordingly, a data entry system is desired which does not have theinherent limitations of conventional point-of-entry systems such as therequirement of a standard operating system for communication with aremote service bureau or file server. A data entry device and associatedsystem is desired which performs a minimal amount of processing at thedata entry device so that the data entry device may be as simple andinexpensive as possible, thereby bringing the cost of such a device intoa range suitable for most commercial and private uses. It is alsopreferable that such a data entry device provide a wide range offunctionality without requiring a local operating system program and aplurality of applications programs for implementing each function. Thepresent invention has been designed to meet these needs.

SUMMARY OF THE INVENTION

The system which meets the above-mentioned needs in the art includes atransaction entry device that permits the user to organize and controlall aspects of his or her personal transactions as well as anytransactions that may occur in an office setting. In its simplest terms,the transaction entry device formats input data into a data transactionhaving content which is dependent upon the type of application to whichthe associated data pertains. These data transactions are thentransferred to a local or remote database server which “explodes” eachdata transaction into its component parts for updating all databasescontaining data to which the data in the component parts pertain. Inthis “transaction entry mode” the transaction entry device of theinvention functions as a multi-purpose workstation. However, since thedata transactions are created without the use of an operating system orapplication programs, the transaction entry device is quite simple andinexpensive and may be readily integrated with the customer's desktoptelephone or portable telephone.

The present invention combines computer technology and telephonetechnology to allow transaction data to be captured at the point ofinitiation of the transaction. The transaction entry device isintegrated into a conventional telephone which acts as either a normaltelephone in a telephone mode or as a transaction entry device in atransaction entry mode. When in telephone mode, the telephone operatesin a conventional manner. However, when in transaction entry mode, thetransaction entry device is driven by a microprocessor which is, inturn, driven by an operating system independent transaction assembly (orapplication) server (TAS) comprised of data streams stored in a flashPROM. The TAS is absolutely self-contained in its relationship to thehardware of the transaction entry device and in general performs the twobasic functions of (1) generating a template or form from a data streamand (2) developing a data transaction as the user inputs data inresponse to prompts in the template or form. The template is a series ofdata streams read from a local flash memory or transmitted directly froman external source such as a database file server.

During operation, the data entered by the user in response to prompts inthe template are accumulated into data transactions which areimmediately transmitted to an external database server. Unlike typicalprior art systems, the data transactions are not locally stored forprocessing by the local microprocessor once the data transaction hasbeen completed. On the contrary, the only required storage in thetransaction entry device is a flash PROM for storing the TAS firmware, aflash memory for storing the data streams used by the TAS firmware tocomplete a form and the modem numbers for the remote database servers,and a small RAM which operates as an input/output transaction buffer forstoring the data streams of the template and the user replies to theprompts in the template during assembly of a data transaction. Thetransaction buffer(s) only needs to be as large as the largest datatransaction since it only stores the form until the entire datatransaction is completed. In this sense, the transaction entry deviceserves as an assembly point for specific transactions until they areready for transmission to an external database server for processing andstorage.

The data transaction formed by the transaction entry device istransmitted via modem to a local or remote database server forprocessing and storage. The data transaction is received via standardprotocols at the database server which, depending upon the application,stores the entire data transaction, explodes the data transaction toproduce ancillary records which are then stored, and/or forwards thedata transaction or some or all of the ancillary records to otherdatabase servers for updating other databases associated with thosedatabase servers. Also, in response to requests from the transactionentry device, any of the database servers may send data streams back tothe transaction entry device for use in completing the fields in thedata transaction or in displaying new forms or menus for selection.

Thus, the data transaction system of the invention comprises at leastthree tiers: a first tier for capturing the data transaction from theuser, where the data transaction has a one-to-many relationship to filestructures; a second tier for exploding the data transaction into itscomponent parts on a system-specific basis so that each component parthas a one-to-one correspondence with a file; and a third tier forproviding additional explosions of the data transactions on anapplication-specific basis so that each application has its own set ofdata transactions.

A preferred embodiment of the transaction entry device of the inventionresembles a conventional telephone except that it includes a touchscreen and an optional keyboard for data entry in addition to theconventional numeric and function keypad inputs. A telephone handset orheadset is optional and may be replaced by a microphone and speaker. Thetransaction entry device of the invention also includes RS-232 and otherinput/output ports for accommodating other options such as a wireless(RF) receiver, a magnetic card and/or smart card reader, a video cameraand video display, infrared controllers, and the like. The telephonepreferably has normal touch-tone functions as well as mobile andcellular options.

Preferably, the transaction entry device contains a microprocessor suchas an Intel 80386SX or higher, one megabyte of flash memory fordynamically storing the data streams for the templates, one megabyte offlash PROM for storing the TAS firmware, and a 128 kB RAM whichfunctions as a transaction buffer for storing the data streams of thetemplates and the user responses until completion of the datatransaction. A graphics display screen is also provided for displayingthe templates to the user for the entry of the data which will form thedata transactions. Preferably, the graphics display screen is on theorder of 24 lines by 40 characters for a desktop unit and 12 lines by 40characters for a cellular unit.

The transaction assembly (application) server (TAS) guides the user tothe desired template via menu selections, where the menus and templatesare stored in flash memory as data streams and are called up by the TASfirmware when selected by the user. Generally, the menus are treated asa special type of template or form. The templates stored in the flashmemory may be updated at any time to handle particular applications byreading in a new data set which has been created off-line and downloadedvia modem or direct connection to the flash memory of the transactionentry device. Alternatively, the data may be downloaded to an RS-232input. The same connections may be used to provide an automatic readfrom a remote database or an automatic write to a remote database. Newapplications may be added simply by adding additional flash memoryelements containing the necessary templates for the new application.

The telephone/transaction entry device and the associated system forstoring transaction data in accordance with the invention is unique inthat it separates the user from the database and provides a simple, userfriendly way to enter transaction data without requiring a localoperating system to run various application programs. Since all data isentered as data transactions determined by templates tailored toparticular applications, the user applications may be generalized sothat no unique user application programs need to be written when a newapplication is added. However, if code is needed, or if a multimediaelement is to be included in a data transaction, it can be appended to adata transaction as an additional parameter stream in the stream of dataforming the data transaction. Also, since the nature of the data in therespective fields of the templates for particular applications is knownin advance, the interface to a database server to permit storage of thedata transactions and their component parts in the appropriate databasesin the appropriate formats for each database becomes trivial.

In an alternative implementation of the invention, a process may beselected from the menu of the transaction entry device which creates a“visible” menu corresponding to a voice mail menu of a remote phone mailsystem. When such a process is selected, the telephone or modeminterface makes a telephone connection to the remote phone mail system,and, once the connection is made, the data transaction assembler sends adata request for a visual representation of the phone mail menu of theremote phone mail system via the telephone connection to the remotephone mail system. A data stream containing the visual representation ofthe phone mail menu from the remote phone mail system is then returnedvia the telephone connection and stored in a memory of the transactionentry device for presentation to the display screen of the transactionentry device 12. When the desired phone mail menu option is selectedfrom the “visible” voice mail menu, the data transaction assemblercreates a data transaction indicating which menu item was selected andsends the data transaction to the remote phone mail system via thetelephone connection. Based on the menu selection, the remote phone mailsystem then returns a data stream containing a visual representation ofthe next phone mail menu via the telephone connection for storage anddisplay. This process is repeated until the calling party is required toleave a message or the called party is reached.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-mentioned characteristic features of the invention will becomemore apparent to those skilled in the art in view of the followingdetailed description of the invention, of which:

FIG. 1 is a schematic diagram of a system for entering data transactionsinto databases in accordance with the invention.

FIG. 2 illustrates a generic template for use in creating a datatransaction in accordance with the invention.

FIG. 3 illustrates an “exploded” data transaction in which the componentparts of a data transaction are stored in database-specific andfile-specific locations.

FIG. 4 illustrates the “exploded” transaction of FIG. 3 in the contextof the system illustrated in FIG. 1.

FIGS. 5(a) and 5(b) together illustrate a preferred embodiment of atransaction entry device in accordance with the invention.

FIG. 6 is a schematic diagram of the electronics of the transactionentry device illustrated in FIGS. 5(a) and 5(b).

FIG. 7 is a flow diagram of a menu driven transaction assembly(application) server (TAS) in accordance with the invention.

FIG. 8 is a flow diagram illustrating a technique for processing a formused to form a data transaction in accordance with the invention.

FIGS. 9(a) and 9(b) together illustrate a flow diagram of a techniquefor completing and editing a data transaction in accordance with theinvention.

FIG. 10 is a flow diagram illustrating how the TAS validates the fieldsof each data transaction.

DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENT

A system and method which meets the above-mentioned objects and providesother beneficial features in accordance with the presently preferredexemplary embodiment of the invention will be described below withreference to FIGS. 1-10. Those skilled in the art will readilyappreciate that the description given herein with respect to thosefigures is for explanatory purposes only and is not intended in any wayto limit the scope of the invention. For example, those skilled in theart will appreciate that the telephone/transaction entry device andsystem for entering data transactions into remote databases inaccordance with the invention may be used in numerous settings innumerous applications. Accordingly, all questions regarding the scope ofthe invention should be resolved by referring to the claims.

A. System Description 1. Overview

The system of the invention provides for the automatic capture andcomputerization of data associated with data transactions as they occur.As used herein, a data transaction is the combination of a form ortemplate or a series of forms or templates containing data entry promptsand the data entered in response to those prompts. Throughout theremainder of this specification, the words “form” and “template” will beused interchangeably.

The data transactions are generated by a transaction entry devicethrough an interactive process between the user and the form. The datatransaction is assembled in a transaction buffer in the data transactionentry device and then transmitted to an external database for storage.No local storage for data transactions is available. The datatransaction is defined externally by the database in that allapplications consist of a series of customized forms and prompts forsoliciting entry of the data needed to update the databases containingdata related to the particular application. Generally, the datatransaction will have a one-to-many relationship to the file structuresof the database containing data for that application.

The data transactions are entered using the transaction entry device.Preferably, the transaction entry device is integrated with telephoneelectronics so that the resulting device may selectively operate as aconventional telephone or as a data transaction entry device. Theresulting transaction entry device preferably includes a touch screenand/or keyboard which provides input to a transaction assembly(application) server (TAS) which, in turn, presents selection optionsvia menus and forms for completion by the user. Menu and form selectionand form completion is made by touch, by key selection from thekeyboard, by moving a cursor to the appropriate selection point anddepressing a key, or even by voice command. Whenever data entry (otherthan mere selection) is desired, it is accomplished via a menu-drivenselection process and/or by direct entry of data using a keyboard, akeypad, a touch screen, and the like. In the menu-driven case, a set ofoptions is presented to the display screen by the TAS firmware. If thisset of options exceeds the capacity of the display screen, then the listis scrolled up or down through the use of scroll keys on the device, byvoice command, or by touch at scroll command points. Once the selectionis made, the data associated with that selection is automaticallyentered into the form from a local or remote database, or the data isinput by the user. In the event of keyboard entry, the TAS firmware maypresent a keyboard at the bottom of the display screen for touch entry;alternately, an optional keyboard located at the base of the transactionentry device may be used.

When the data is entered independently of a selection process, such dataalso may be entered using a swipe card if the data resides on the swipecard or the data may be transferred into the data transaction via modemfrom an external source. The data read from the swipe card can be usedto fill out a form or may be transmitted to an external database orcomputer. Data returned from the external database or computer via modemmay also be used to fill out the fields in the form. As desired, thedata in a data transaction may also be written to a swipe card or memorycard and the like.

The TAS firmware of the invention stores the options as well as controlprograms (microcode) for the processor for use with the templates increating the data transactions. The TAS firmware also includes a programallowing connection via modem to one or more external computers anddatabases. Preferably, two modes of operation are available: transactionentry mode (with or without modem connection) and telephone mode. Aselection of either the transaction entry mode or the telephone mode ismade through a switch selection on the transaction entry device. Whenthe transaction entry device is placed in the transaction entry mode,the TAS firmware immediately presents a selection menu for all of theoptions the system is programmed to handle. In the telephone mode, onthe other hand, a dial tone is provided and the telephone keypad isenabled. In telephone mode, one or more lines may be connected so as toallow simultaneous use of the transaction entry device withoutinterfering with the modem connection. However, if a single telephoneline is used, the telephone capability is available at all times orintermittently via modem as specified by the particular application. Inthe intermittent mode, upon a “save” the transaction entry device willcontrol a dial up and transfer of data to a remote database server. Onthe other hand, if the telephone is used with an automatic dialermechanism utilizing a phone list, the transaction entry device mayautomatically change from the telephone mode to the transaction entrymode. In this case, a display on the telephone may be used to present aname and telephone list from which a selection can be made in accordancewith the menu selection techniques described below.

2. Data Transaction System (FIGS. 1-4)

FIG. 1 is a schematic diagram of a system 10 for entering datatransactions into databases in accordance with the invention. Asillustrated, system 10 comprises a first tier for capturing a datatransaction having a one-to-many relationship to file structures, asecond tier for exploding the data transaction into component partshaving a one-to-one relationship to file structures, and a third tierfor providing additional explosion of the data transactions for specificapplications.

The first tier comprises a transaction entry device 12 which capturesthe data transaction from the user in response to any of a plurality ofinputs from the user. Transaction entry device 12 includes conventionaltelephone electronics 14 and speaker 16 and a data transaction assembler18 for creating a data transaction in accordance with the invention. Adisplay screen 20 is preferably associated with data transactionassembler 18 so that the user may monitor creation of each datatransaction. Telephone electronics 14 are connected to a telephoneswitching network 22 via a conventional voice connection 24 over thetelephone lines, while data transaction assembler 18 is connected viatelephone lines 26 to one or more database servers 28. As illustrated inFIG. 1, telephone lines 24 and 26 may be separate lines, therebypermitting simultaneous use of the telephone and data entry functions,or the telephone electronics 14 and data transaction assembler 18 may beconnected to a single line as illustrated in phantom in FIG. 1. Ofcourse, when the telephone electronics 14 and data transaction assembler18 are connected to a single line, a mode switch will enable theirmutually exclusive operation, or alternatively, any of a number ofconventional transmission schemes may be used to permit simultaneoustransmission of the voice from the telephone electronics 14 and the datafrom the data transaction assembler 18 over the same line.

During operation in the transaction entry mode, transaction entry device12 is responsive to user input devices such as a touch screen, atelephone keypad, a keyboard, a microphone, a swipe card, a memory card,video input, and the like, to form data transactions using datatransaction assembler 18. Alternatively, the transaction entry device 12operates in a telephone mode as a conventional telephone and receivesinputs from a microphone and/or a handset, a touch tone keypad, and thelike. More details of the transaction entry device 12 and datatransaction assembler 18 will be provided in the next section withrespect to FIGS. 5-10.

The second tier comprises one or more database servers 28 and theirassociated databases 30. In general, each database server 28 receivesdata transactions from one or more transaction entry devices 12 and“explodes” the received data transactions into their component parts forstorage in the appropriate files of the associated database 30. In otherwords, the one-to-many file structure of the data transactions from oneor more transaction entry devices 12 is converted into many one-to-onedata transactions for storage in individual files of database 30.

Each database server 28 includes a modem 32 for transmitting/receivingdata from the telephone lines 26, particularly the data transactionsfrom one or more transaction entry devices 12. Preferably, the datatransactions are transmitted over the telephone lines 26 as data packetshaving, for example, 128 bytes, where 120 bytes contain information and8 bytes contain control data. A transaction queue 34 acts as an inputbuffer for the received data transactions and controls the rate ofpresentation of the data transactions to transaction controller 36.Transaction controller 36 processes the received data transactions toextract the physical file relationships of the component parts of thedata transactions and stores the components parts and differentcombinations thereof in the appropriate files of associated database 30.Alternatively, transaction controller 36 may process a data request fromdata transaction assembler 18 requesting information from database 30for completing certain fields of a data transaction being processed bythe transaction entry device 12. Database 30 then provides the requestedinformation to database server 28 which, via modem 32, provides a datastream back to data transaction assembler 18 for use in completing thedata transactions or presenting additional menus and forms in accordancewith the invention. Typically, a user ID and password are transmitted tothe transaction controller 36 to permit a connection to be made by datatransaction assembler 18. Thus, transaction controller 36 also checksand stores startup and logoff information in addition to storing datatransactions and directing reconstituted data transactions to otherdatabase servers as described herein. In addition, database server 28may include a conventional phone mail system with an associated databasefor storing voice mail messages. In this case, the data transaction mayinclude voice data for storage in the remote voice mail system.

As shown in FIG. 1, several database servers 28 may be provided.Preferably, each transaction entry device 12 has an associated databaseserver 28 for performing any desired processing of its datatransactions, although it is preferred that the data transactions becopied to at least one other database server 28 as shown in FIG. 1. Thisredundancy minimizes the possibility of losing data in the event of apower outage and the like. Preferably, each database server 28 containsessentially the same hardware, although modem 32, transaction queue 34,and transaction controller 36 have not been shown for all databaseservers 28 for ease of illustration.

In transaction entry mode, the data transaction assembler 18 oftransaction entry device 12 creates a data transaction that istransmitted to an associated transaction controller 36 of an associateddatabase server 28. By “associated” it is meant that the database server28 functions to perform any processing requested or necessary inconjunction with the storage of a data transaction from a particulartransaction entry device 12. Of course, a particular database server 28may have several transaction entry devices 12 associated with it. Sothat no data will be lost, a particular database server 28 may alsoserve as a backup for another database server 28 in the event of thefailure of any database server 28.

As will be explained in more detail below with respect to FIGS. 2-4,database server 28 “explodes” data transactions received from datatransaction assembler 18 and provides the component parts of the“exploded” file dependent data transactions via modem 32 to otherdatabase servers 28 as necessary to update other databases.Alternatively, as shown by dotted line in FIG. 1, the “explosion” of thedata transactions may be performed by the data transaction assembler 18at the transaction entry device 12 and the component parts transmittedto all appropriate databases 28 for updating the data therein. For thispurpose, the data transaction assembler 18 will also need to know themodem numbers for all database servers 28 to be updated by the explodeddata transactions. However, those skilled in the art will appreciatethat this latter alternative will require access to numerous phone linesby the transaction entry device and that such phone lines are not alwaysavailable to the user.

Finally, the third tier of the system 10 includes additional databaseservers 38 and databases 40 which support file dependent datatransactions for specific applications. This additional tier of databaseservers 38 and databases 40 permits the data in the data transactions tobe routed to application specific databases for storage of applicationspecific data and access by those transaction entry devices 12requesting data related to that specific application.

The creation and storage of a data transaction in accordance with theinvention will now be described with respect to FIGS. 2-4.

Data transactions are created by data transaction assembler 18 as a datastream of a known format. A generic data transaction is illustrated inFIG. 2. As defined herein, a data transaction is created using a formcontaining one or more of the following: instructions, prompts, menuselection options, and a template with fields for data entry. Generally,the menu form consists of prompts for selecting a form, another menu, ora process, and a single slot for entering a selection, while the dataentry form consists of prompts and instructions together with fields forentering data as shown in FIG. 2. The data entry form can have eithersingle or multiple fields for entering data.

In transaction entry mode, the user navigates through menus of datatransaction assembler 18 until a form related to a particular type ofdata entry operation is selected. Once selected, data transaction form42 is presented to the user on display device 20. The data transactionform 42 is a collection of data defining the visual presentation on thedisplay device 20 and a list of the fields through which linkages toexternal database files are defined.

As shown in FIG. 2, data transaction form 42 includes a format field 44which identifies the type of data transaction this form pertains to, thelength of the form, the number of pages in the form, the number of bytesin each field, storage keys, and the like. The body of the datatransaction form 42 comprises a predetermined series of prompts 46 whichare provided to the display screen 20 as a data stream. The promptspreferably include descriptive data which may be alphanumeric, an icon,or a list that scrolls, if necessary. Fields 48 are blank spaces ofpredetermined size provided for accepting user input in response to eachprompt. Generally, the size of each field 48 is also stored in thestream of data defining the data transaction form 42. Since the promptsare tailored to elicit the necessary data for the application for whichthe data transaction form 42 was created, the fields 48 will include theuser data necessary for processing a data transaction for thatparticular type of application. The user responses become part of thedata stream which forms the data transaction. Typically, the datatransaction form 42 also includes a miscellaneous processing field 50which permits processing data unique to that form to be appended to thedata transaction for transmission. Such processing data may include, forexample, equations which define the relationships of the data in certainfields of the data transaction or audio or video data attached to amultimedia data transaction. In addition, non-display data associatedwith the time of data entry, the date of data entry, the user ID, andthe like may be stored in miscellaneous processing field 50.

FIGS. 3 and 4 illustrate the “explosion” of the stream of data formingthe data transaction created using the data transaction form 42 of FIG.2. As shown in FIG. 3, each data transaction contains data which isspecific to a particular database and/or specific to particular files inone or more databases. The data in the data transaction is “exploded”accordingly. For example, the complete data transaction from FIG. 2(Form A) is stored in a particular file (file 110) of the databaseassociated with the transaction entry device 12 which created the datatransaction (database 11 in FIG. 1). Storage of the entire datatransaction is desired so that records may be maintained in the event ofsystem error, power failure, and the like. The transaction controller 36then extracts data from those fields of the data transaction which itknows to be related in forms of that particular type. For example, thedata in fields 1, 2, 6, 10, and a function of the data in field 11 mayrelate to a particular application stored in file 111 of database 11.Similarly, the data in fields 3, 6, 10, 12, and 14 may be related to anapplication stored in file 112 of database 11, while the data in fields1, 2, 7, 8, 9, and a function of the data in fields 10, 11, and 12 maybe related to an application stored in file 113 of database 11. Thesefields are extracted from the received data transaction by transactioncontroller 36, reconstituted into a file entry of the appropriate format(as necessary), and stored in the associated database 30.

All of the data in the received data transaction, or a subset thereof,may also be retransmitted to one or more additional application specificdatabases, such as database 21 of the databases 40 in tier 3. Asillustrated in FIG. 3, the database specific data of fields 1, 4, 5, 13,and 14, forming the subset (Form B) of the original transaction (FormA), is stored in file 210 of database 21 so that a complete record maybe maintained. Subsets of the data in Form B are then stored in specificfiles of database 21 as indicated. In this manner, the data of theoriginal data transaction (Form A) is automatically sent to alldatabases which contain files which must be updated by any or all of thedata in Form A.

FIG. 4 illustrates the explosion of the data transaction in FIG. 3 forthe system 10 illustrated in FIG. 1. As shown, the data in the datatransaction (Form A) is extracted to update files 110-113 of database 11as well as files 210-212 of database 21. A redundant copy of Form A isalso maintained in database 12.

As will be explained more fully below, the system of FIGS. 1-4 issignificant in that the data in a data transaction may update one ormore databases serviced by file servers operating under control ofnumerous types of operating systems without the requirement of aterminal or operating system emulation by the transaction entry device12. On the contrary, the transaction entry device 12 of the inventionpermits data capture and storage with a minimum amount of processing atthe transaction entry point (tier 1), which, of course, minimizes systemcost.

B. Transaction Entry Device 12 (FIGS. 5-10)

As noted above, the transaction entry device 12 is particularlycharacterized by the data transaction assembler 18, which controls thevarious operations of the transaction entry device 12 in its transactionentry mode. Preferably, data transaction assembler 18 uses simple menustructures and predetermined forms stored as data steams in a flashmemory for facilitating data entry. The menus are treated as a specialtype of form and are used to call other menus, forms, or processes. Theforms, on the other hand, are used to create data transactions which aresent to one or more file servers operating under different operatingsystems, where the data transaction is “exploded” into its componentparts for storage in a unique file structure for updating all recordsaffected by the data in that data transaction. In turn, the “exploded”data transactions may be transmitted to another application specificdatabase (tier 3) for storage. Processes, on the other hand, areselected to perform limited processing of the values in the fields ofthe forms. Such processing may be performed locally but is preferablyperformed by the associated database server 28.

1. Hardware

A preferred embodiment of a transaction entry device 12 incorporatedinto a conventional telephone is illustrated in FIGS. 5 and 6. As shownin FIG. 5 a, a preferred desktop embodiment of a transaction entrydevice 12 includes a housing 52 on the order of 8 inches wide by 12inches long for housing telephone electronics 14 and the hardware ofdata transaction assembler 18. Transaction entry device 12 includes anoptional handset (or headset) 54, cradle 56 (FIG. 5 b), numeric keypad58, telephone function/line keys 60, microphone 62, and speaker 16,which facilitate operation of the transaction entry device in thetelephone mode. As known to those skilled in the art, telephonefunctions accessed by telephone function keys 60 may include mute,speaker, line select, conference, hold, transfer, volume control, andthe like.

However, the transaction entry device 12 is further characterized bydisplay 20 with touch screen 64, mode switch/computer function keys 66,optional retractable keyboard 68, and optional magnetic/smart cardreader 70, which facilitate operation of the transaction entry device 12in the transaction entry mode. A memory card reader may also be accessedvia a door (not shown) as in a laptop computer. Preferably, display 20is a super twisted, high contrast, reflective liquid crystal display(LCD) with a minimum of 20 characters per line and 16 lines (preferably,40 columns by 24 lines), while touch screen 64 is preferably a clearpressure sensitive keyboard made up of 224 keys (16 rows of 14 keys)attached to the face of the LCD. Preferably, the LCD is also availableas a backlit unit. Of course, touch screen 64 is not necessary ifoptional keyboard 68 is provided. In addition, a battery backup 71 (FIG.6) may also be provided; alternatively, the battery 71 may be theprimary power source for a portable (cellular) embodiment of thetransaction entry device 12 in accordance with the invention.

FIG. 5 b illustrates several of the connections to transaction entrydevice 12. Typically, transaction entry device 12 includes a handset(headset) jack 72 for connecting optional handset (headset) 54 totelephone electronics 14 when it is desired to communicate moreprivately than when only microphone 62 and speaker 16 are used. A videoinput port 74 is also provided for connecting conventional datacompression circuitry 75 within the transaction entry device 12 (FIG. 6)to an optional video camera which provides picture phone type video orto a facsimile device or scanner. Such video data may be appended aframe at a time to the end of a data transaction in miscellaneousprocessing field 50 to create a multimedia data transaction as describedabove with respect to FIG. 2. A video output port 76 is also providedfor providing decompressed video or facsimile data from datadecompression circuit 77 (FIG. 6) to a video receiver, a high qualitycomputer monitor, a facsimile device, and the like. Such data may alsobe provided to printer port 82 or 84 as desired. A multi-line phone jack(modem interface) 78 is also provided. Preferably, modem interface 78provides separate modem connections for the telephone electronics 14 andthe data transaction assembler 18, although only a single modemconnection is necessary.

An optional infrared transceiver 80 is further provided for enablingremote control operation of television and stereo equipment and the likein response to data transactions transmitted/received by the transactionentry device 12. Infrared transceiver 80 includes an internal signalgenerator chip which reads parameters stored in data transactionassembler 18 for determining the appropriate transmission frequenciesfor the infrared signals. Control of the infrared devices is thenprovided through menus on the display 20. Additional infraredtransceivers 80 may also be provided on each corner of the housing 52 sothat the infrared signal will cover more area (each transmittertypically covers about 60 E circumference). All such devices are knownto those skilled in the art and thus will not be described in detailhere.

A computer interface (RS-232) serial port 82 and parallel port 84 isalso provided for transmitting/receiving data to/from another computerdevice and for providing output to a printer. A power input port 86 anda keyboard input 88 are also provided. Keyboard input 88 accepts aconnection from a standard keyboard or a folding type keyboard (notshown) which may be used in addition to, or in place of, retractablekeyboard 68. An optional removable PCMCIA memory card interface 89 (FIG.6) for updating the operating instructions of the data transactionassembler 18 and an optional RF transceiver 90 (FIG. 6) for wirelessnetworking to other electronic equipment may also be provided on thetransaction entry device 12 as desired.

FIG. 6 is a schematic diagram of the electronics of the transactionentry device illustrated in FIGS. 5(a) and 5(b). Corresponding referencenumerals for corresponding elements are used in FIGS. 5(a), 5(b) and 6.As shown in FIG. 6, in addition to the elements described above withrespect to FIGS. 5(a) and 5(b), the transaction entry device 12 mayinclude a simple voice recognition circuit 91 which permits voiceselection of menu options and the like. In “voice selection” mode, theuser would voice “1”, “2” or “3” depending on the desired menuselection, and the voice would be picked up by microphone 62 on thehousing 52 of the transaction entry device 12 and recognized by voicerecognition circuitry 91. The proper selection signal would then be sentto the data transaction assembler 18. Similarly, the data transactionassembler 18 may provide audible output using a conventional voicesynthesizer 92, which provides the audio output to the user via speaker16 and to a caller via modem interface/telephone line connection 78. Thevoice synthesizer 92 may, for example, allow certain data transactionsto be audibilized for a blind person who cannot make selections from aconventional video display. In addition, a voice recorder 93 may also beprovided to record portions of telephone calls, portions of voiced datatransactions, or a caller's message as when using a conventional digitalanswering machine. On the other hand, voice recorder 93 may be providedin database server 28 for use in storing/forwarding audible messages tothe database 30.

As noted above, the transaction entry device 12 is characterized by datatransaction assembler 18, which controls the creation of datatransactions in the transaction entry mode. As shown in FIG. 6, datatransaction assembler 18 is implemented in hardware using a conventionalmicroprocessor 94, such as an Intel 80386SX (20 MHz or higher) orequivalent, a TAS PROM 95, a form/menu memory 96, and a transactionbuffer (RAM) 97. In a preferred embodiment, TAS PROM 95 is a flash PROMwhich holds 1 MB of control data (firmware) for the microprocessor 94(such as the microcode for the algorithms of FIGS. 7-10 below), whileform/menu memory 96 is a flash memory which holds 1 MB of datatransaction menus and forms. Transaction buffer 97, on the other hand,only needs to be as large as the largest data transaction, and may hold,for example, up to 128 kB of transaction data including application andoperating system variables. Preferably, TAS PROM 95 and form/menu memory96 are updated by downloading data streams containing new instructionsand/or forms and menus over a conventional data bus 98 via modem 78,magnetic card interface 70, or via a removable memory card read bymemory card interface 89 as necessary. Alternatively, additional flashmemory elements may be added as additional applications are added totransaction entry device 12. Transaction buffer 97 may also be expandedto handle transactions of any size or type, including multimediaapplications in which video and/or audio data is appended to datatransactions.

Those skilled in the art will appreciate that the transaction entrydevice 12 may be docked into a docking station of a network. RFtransceiver 90 may be used for wireless communications in such anenvironment. In addition, those skilled in the art will appreciate thatthe transaction entry device 12 may be implemented as a battery operatedportable device which is a cross between a laptop computer and acellular telephone of the type illustrated by Paajanen et al. in U.S.Pat. No. 5,189,632, for example. In such an embodiment, an optionalheadpiece could be provided, as well as a microphone and speakerarrangement in the fliptop. Of course, the liquid crystal display screen20 would typically be reduced in size to, for example, 40 columns by 12rows, and the touch screen 64 may be eliminated. However, most of theother options of the embodiment of FIGS. 5 a and 5 b would preferablyremain so that the portable unit could also be used at a desk asdesired. The electronics of the transaction entry device 12 wouldotherwise be as illustrated in FIG. 6 except for certain size and shapeconsiderations well within the skill of those skilled in the art.

2. Software

As will be apparent from the following description, data transactionassembler 18 does not utilize a conventional operating system to controlthe operation of microprocessor 94. On the contrary, TAS PROM 95 storessimple firmware algorithms (FIGS. 7-10) operating in a kernel fashionfor navigating a user through menus and forms provided from form/menumemory 96 for particular applications, and it is the resulting datastreams which control the microprocessor 94 at any point in time. Inother words, the data streams from the TAS PROM 95 and the data streamsfrom the form/menu memory 96 together reconfigure microprocessor 94 intoa special purpose processor for each application specified by the forms.The microcode of the TAS PROM 95 and the parameter streams from theform/menu memory 96 thus operate together as a simple form drivenoperating system for microprocessor 94 for all applications and is thesole code used to control microprocessor 94 (i.e., no conventionaloperating system or application programs are provided). As a result, themicroprocessor 94 may be reconfigured into a new special purposecomputer with each new form read from form/menu memory 96, and suchforms/menus may be added at any time by reading in the appropriate datastreams from a memory card or from an external database server 28 or byadding an additional PROM. A specific implementation of the TAS firmwarestored in TAS PROM 95 will be described below with respect to FIGS.7-10.

Thus, the TAS PROM 95 contains control data (firmware) for themicroprocessor 94 and resides in each transaction entry device 12 forgenerating a template for a data transaction from a data stream storedin form/menu memory 96 (or received directly from a memory card orexternal database server) and from data input by a user or retrievedfrom an external database or magnetic card, smart card, and the like.The TAS firmware and the selected template together control the behaviorof the microprocessor 94 by logically defining a table of menu optionsand/or database interfaces which are navigated through by the user. Asnoted above, the user navigates through a series of menu selections byselecting another menu, a form, or a process. Once the data transactionfor a desired application is completed, it is transmitted out for“explosion” into all of its component parts for storage. In this form,the TAS firmware from TAS PROM 95 and menus and forms from form/menumemory 96 of the invention together replace a conventional operatingsystem and individual application programs. Indeed, the inventionpermits the transaction entry device 12 to be completely operatingsystem independent.

The data transaction assembler 18 of the invention is connected via apredetermined protocol stored as instructions within TAS PROM 95 to adatabase server 28 and its associated database 30. As noted above, thedatabase server 28 associated with a particular transaction entry device12 operates as a repository of the data transactions created by thetransaction entry device 12 and as a supplier of data to the transactionentry device 12 for completing the forms and providing additional forms,menus, processes, and the like. Since the system of the invention isoperating system independent, there are no hardware or softwarelimitations on the characteristics of the database server 28.

The parameter set making up the individual forms are typically providedby database server 28 as a stream of data via modem and stored inform/menu memory 96, while any downloaded instructions are stored in TASPROM 95. Linkage between data transaction assembler 18 and its databaseserver 28 is preferably provided via a dictionary program specific toeach database server 28. This dictionary program knows thecharacteristics of each field of each form for each data transaction andis used by the database server 28 to “explode” the received datatransactions into their component parts.

Preferably, at power on, data transaction assembler 18 automaticallyprompts the user with a “Download Parameter Streams” command so that theuser can load into form/menu memory (flash memory) 96 from an externalsource the desired streams of menu and form data for the desiredapplication. The “download parameter” process will then be initiated bydialing the external database server 28 initiating the connection viathe modem interface 78. Once connected, the transaction controller 36 ofdatabase server 28 will transmit the requested parameter stream. Thedata transaction assembler 18 will load the received data stream intoform/menu memory 96, and, upon completion, the prompt “Executive MenuReady” will be presented on the display screen 20. The executive menuthen will be automatically presented to the user for selection of thedesired menu, form, or process.

Upon initiation of the transaction entry mode by the user, datatransaction assembler 18 calls a set of panel parameters from form/menumemory 96 and paints a form onto display screen 20. These forms areeither menus for navigating to particular forms or a form into whichdata is entered by the user. As will be explained below, the menusprovide functionality through simple menu selection. The form on thedisplay screen 20 is completed by the user by entering the appropriatedata using touch screen 64 or optional keyboard 68. Alternatively, therequested data may be read in from a memory card via memory cardinterface 90, from a magnetic strip on a swipe card or smart card viamagnetic card interface 70 or memory card interface 89, or voice inputvia voice recognition circuit 91. In addition, a request may be sent tothe database server 28 associated with the transaction entry device 12for data needed to populate certain fields in the present form. The typeof data entry is requested from a subset of options presented to theuser upon pressing a “?” key or a “Request for More Information” button.This request will give the user several options to choose from, such asdata entry using keyboard 68, touch screen 64, swipe card via magneticcard interface 70, memory card via memory card interface 89, by voiceannunciation of the number of the item in the menu via voice recognitioncircuit 91, or via modem from a database 30. Hence, the data transactioncreated by the data transaction assembler 18 may or may not make use ofstored data for reducing the amount of data entry required of the user.

When a data entry option is selected, data transaction assembler 18 doesone of the following: another set of parameters is called up and anotherform is painted, the correctness of the selection is verified and a setof options for selections is presented based on interactions with storeddata, the completed data transaction is transferred via modem todatabase server 28 for storage in database 30, or data values arerequested from database 30 for incorporation within the transactionbuffer 97. In a preferred embodiment, selections from the menu are madeby touching the appropriate place on the menu using touch screen 64; byvoice annunciation of the number of the menu item via microphone 62 andvoice recognition circuit 91; by using one of the computer function keys66 to run a cursor up the menu, another key to run the cursor down themenu, and a third key to make a selection in a conventional manner; orby using keyboard 68 as a selection device. When the keyboard 68 isused, the keyboard keys may be used to control a cursor, with the“enter” key being used for making a selection; alternatively, the numberof the item selected may be entered and the “enter” key pressed to makethe selection. Once the selection is made, the appropriate form isextracted from form/menu memory 96 as a stream of data.

Alternatively, in addition to presenting a menu for selection orcompleting a form, the data transaction assembler 18 can also present amenu selection for initiating a process such as calculation of aninterest rate using one or more fields in the form, the finding of amean, the finding of a name, or searching for entries for a particulardate. These processes may be stored in TAS PROM 95, form/menu memory 96,in an off-line server where they are initiated, or any other place wherethey may be loaded down to the operating portion of the transactionentry device 12. In a preferred embodiment, processes are generallyinitiated in the database server 28 by sending a data request to thedatabase server 28, processing the data in the database server 28, andthen returning the answer as a data stream or report back to thetransaction entry device 12.

A process typically initiates a data string which calls a process on anexternal machine. For example, the transaction entry device 12 may beused to download and store control signals for infrared control ofvarious devices using infrared transceiver 80 (FIGS. 5 and 6). The formof the control signals will depend upon the signal storage in anoptional infrared chip, which can be loaded by the data transactionassembler 18 or by an off-line device via modem or through the air usingRF transceiver 90 for direct digital transfer in wireless form. Inaddition, in the case where the transaction entry device 12 is used in amedical office, for example, the process may be used to transmit aprescription to a pharmacy or mail order house using prestored modemnumbers or may enable the physician to call up a list of phone calls tomake for the day or a list of the followup appointments for a particulardate. In other words, the TAS firmware can also “explode” the datatransaction into all of its ancillary parts for transmission to numerousrecords in one or more databases.

A preferred embodiment of the TAS firmware will now be described withrespect to FIGS. 7-10.

As noted above, the transaction assembly (application) server (TAS) is adata stream stored in TAS PROM 95 which together with the forms fromform/menu memory 96 create a simple form driven operating system whichprovides the necessary control data (firmware) to microprocessor 94 sothat no conventional operating system is necessary. FIG. 7 is a flowdiagram of a menu driven TAS in accordance with a preferred embodimentof the invention. As illustrated, the TAS firmware starts at step 100and fetches an initial menu from form/menu memory 96 at step 102. Theinitial menu is prompted within a few seconds of booting the TASfirmware after the system logo. The initial menu typically presents theoptions of downloading a parameter stream from the database server 28for enabling additional functions or printing an executive menu. If theexecutive menu is selected, the executive menu is retrieved fromform/menu memory 96. The executive menu contains numerous applicationoptions to the user, namely, selection of a form, another menu, aprocess, or an automatic switch to telephone mode, one of which isselected at step 104. The data streams in form/menu memory 96 may bedistinguished as to type (form, menu, or process) by appending a codesuch as “F” for form, “M” for menu, and “P” for process, and as tonumber by appending a form, menu, or process number at the beginning ofthe following data stream. These codes are recognized by the TASfirmware, and it acts accordingly.

If the option selected at step 104 is a form, the proper form (datastream for form F_(xy)) is fetched from form/menu memory 96 at step 106,a transaction buffer 97 equal in length to the size of the recordassociated with the form F_(xy) is formed in RAM, the form is stored inthe transaction buffer 97, and a connection is made to the appropriatedatabase server(s) 28. The data stream for the selected form willconsist of prompts, print locations for the prompt, data entry points,print locations for the data entry start, data entry length, and a codeas to the nature of the data entry. This code can be numeric,alphanumeric, a cross-reference to stored data or previously entereddata, a formula for the creation internally to data transactionassembler 18 of the result from previously entered data, or an externalrequest for data, help, or reformulated values. The data stream enteredinto the fields of the form will not only indicate the location for theprinting of the prompt and the field for data entry, but also the sizeof the field and the storage, a start point within the transactionbuffer for the stored element, and the type of data: alphanumeric,numeric (floating point or integer), date, and the like.

If it is determined at step 108 that the requested form is actually amenu (M_(xy)), a hidden set of codes pointing to the form F_(xy) thatthe selection will lead to is read, and control branches back to step104 for selection of another menu or form. When a menu is chosen, eachitem has its sequential number, its descriptor, and a code for what itwill “call” (another menu, form, or process). In other words, eachchoice has associated with it a series of item codes which branch out toanother form, menu, or series of tests upon the data entered. A menualso has a numeric code for each of the storage areas and a special codeincluding a security code for certain menu items, process codes of formswithin the menu, or a pointer to the process code. A pointer may also beprovided in the menu for processes to be performed off-line (i.e., in anassociated database server 28).

If a process (P_(xy)) is selected at step 104, the database server 28 isnotified that something is requested from its database 30 or that someprocessing of data is requested. For example, the data transactionassembler 18 may send a user “?” inquiry to the database server 28 sothat options may be returned to the data transaction assembler 18 forpresentation to the user for selection. The process triggers an externalprocess of database server 30 with a parameter stream, and control iseither returned to the data transaction assembler 18 or control is heldup until the process is complete, in which case a message is sent backto the data transaction assembler 18. This message can be a report,selected data, a value resulting from a calculation, and the like.Processing such as checking detectors and the like may also be performedlocally by data transaction assembler 18.

Once the desired form is selected for the user's application, the formis processed at step 110 in accordance with the steps outlined in FIGS.8-10. As an entry is made in each field, it is automatically storedwithin the input buffer area of the transaction buffer 97 at itsassigned location and in the dictated format. At any time, the entireform may be exited with automatic return to the menu which called it orthe form can be cleared for data reentry. Once the form has beenprocessed and transmitted to the appropriate database server(s) 28, thedatabase server connection is terminated and the user is presented atstep 112 with the last menu from which the user made his or herselection. Alternatively, the executive menu will be called up as adefault menu.

If the user indicates at step 114 that he or she wishes to continue tocomplete a new form, control branches back to step 104 for menuselection and a new database server connection is made as appropriate.This process is repeated for each form. When no further selections aredesired, the TAS firmware is exited at step 116.

FIG. 8 is a flow diagram illustrating a technique for processing a form(step 110) to create a data transaction in accordance with theinvention. As illustrated, the process of FIG. 8 starts at step 118 andinitializes a transaction buffer 97 at step 120 for storage of the datatransaction as it is being created. In other words, if there is a formfor the requested application, it is moved from form/menu memory 96 tothe transaction buffer 97. If the requested form is not present inform/menu memory 96, an error message may be sent or a request may besent to database server 28 for a download of a data stream containingthe parameters for the requested form. Preferably, transaction buffer 97is at least as large as the largest data transaction and serves as anassembly area for the data transaction. Preferably, read and writebuffers are formed so that transmit and receive buffers to/from modeminterface 78 are available. Of course, transaction buffer 97 may be madelarger for this purpose.

Once the transaction buffer 97 is initialized at step 120, the displayscreen 20 is cleared and the selected form is initialized to its firstpage at step 122. The first page is then presented to the display screen20 at step 124. At step 126, the user completes the form page on a fieldby field basis using any of the data entry techniques described aboveand the field controls of FIGS. 9 and 10.

The transaction buffer 97 collects the data associated with the formpresented to the user on display screen 20 and contains appropriatelocations for each separate data element. Upon completion of the datatransaction, the contents of the transaction buffer 97 are transferredto the appropriate database server(s) 28 via modem or via wireless,preceded by a set of codes (field 44, FIG. 2) which identify the type ofdata transaction and followed by a string of process identifiers for thedatabase server(s) 28 to use in its programs in creating additionaltransactions and in storing the data and all ancillary data transactionsin the regular file format of the database 30 associated with thedatabase server(s) 28. As a result, the data transaction created in thetransaction buffer 97 has a one-to-many relationship to the data storedin the database 30.

If the user decides to abort the processing of a form at any time (step128), the form processing routine is exited at step 129. Otherwise, itis determined at step 130 whether the user wishes to go back a page (fora multi-page form) to correct a data entry. If so, control returns tostep 124 for presentation of the earlier page. If the user does not wishto examine or edit a previous page, it is determined at step 132 whetherthe current form has another page which has not been displayed forcompletion by the user. If the form has more pages, the routine moves tothe next page at step 134, and it is determined at step 136 whether themove to the next page was successful. If so, control returns to step 124for presentation of the next page. Of course, the process of calling asubsequent page in a form or another form upon completion of a form canbe dependent upon an automatic call of that page or form sequence or theability to jump sequence (i.e., skip pages) depending upon a value inany one field that has been entered. In any event, if there are no morepages in the form or if the move to the next page was not successful,the end of the form is marked with a code and the transaction is savedat step 138 by sending the data transaction to the appropriate databaseserver(s) 28 for storage in its associated database 30 and “explosion”for storage of data in other databases 40. If it is determined at step140 that the save was not successful because of a modem error and thelike, control returns to step 122 and the process is repeated. If thedata transaction was successfully saved, the form processing routine isexited at step 129 and the last menu used is presented (step 112).

Optionally, stored procedures within any data transaction form (field50, FIG. 2) are executed at the appropriate time within the flow of theform processing routine before it is exited. However, these processesmay be deferred and performed by the database server 28 if needed.

FIGS. 9(a) and 9(b) together illustrate a flow diagram of a techniquefor completing and editing the fields of a form (step 126 of FIG. 8).The field completion routine starts at step 142 and first determines atstep 144 whether an abort or a valid page move request is pending. Ifso, the field completion routine is exited at step 146. However, if noabort or page move request is pending, the field data for the firstfield of the transaction buffer 97 is entered at step 148. As notedabove, this field data may be entered via keyboard 68 or touch screen64, swiped in via magnetic card interface 70, read in from a memory cardvia memory card interface 89, read in via modem interface 78 fromdatabase server 28, or designated by voice entry. Pre-edit processing ofthe field data is then performed at step 150. Such pre-edit processingmay include, for example, setting default values, performingcalculations, establishing links to data in other files, looking up andwriting data to files already linked to the present form, spawninganother form, performing special updates of the display screen 20,hiding fields from view by the user, and the like. Such pre-editprocessing may also be used to determine whether modifications oractions in the present field may invalidate an entry in anotherinterrelated field. If so, appropriate measures are taken to update allaffected fields or to prevent such problems by setting appropriatedefault values.

The field completion routine then checks for field errors at step 152 onthe basis of the default values and the like set at step 150. If thereis no field error at step 152, it is determined at step 154 whether theoperator will be permitted to edit the field in the absence of a fielderror. If so, or if a field error was found at step 152, the operatoredits the field at step 156. If the operator editing is bypassed,control proceeds directly to post-edit processing at step 158, whichperforms essentially the same functions as pre-edit processing step 150except that the data may be specially validated: The field is thenchecked yet again at step 160 for a field error. If a field error isfound at step 160, control returns to step 144 for processing the nextfield or exiting, as appropriate.

If no field error is found at step 160, it is determined at step 162whether the generic field validation routine of step 164 (FIG. 10) is tobe skipped. If so, control proceeds to step 166, where the field is onceagain checked for a field error. However, if generic field validationsare desired, control passes to the routine of step 164 (FIG. 10). If nofield error is found at step 166, the field is saved to the transactionbuffer 97 at step 168 and the updated field value is painted on thedisplay screen 20 at step 170. If the user then desires to check aprevious field at step 172, control passes to a previous field at step174 and the field completion routine is repeated for the previous field.However, if no previous field is to be checked and if it is determinedat step 176 that a further field is present, control passes to the nextfield at step 178 and the field completion routine is repeated for thenext field. This process repeats until the last field is completed andthe routine exits at step 180. Control then returns to FIG. 8 forprocessing a different page of the form.

Each form may be processed in one or more modes. In the input mode,described above, the data transaction is created and transmitted to thedatabase server 28. However, in edit mode, upon entering the ID of aparticular record, that record is read from an external database 30 or40 into transaction buffer 97 for editing. Preferably, a record of theedits is maintained to provide an audit trail. In view mode, uponentering the ID of a particular record, that record is similarly readfrom an external database 30 or 40 into transaction buffer 97 but fordisplay only. Finally, in delete mode, an entire record can be deletedfrom the database 30 or 40 if the user has proper security clearance.

FIG. 10 illustrates how the TAS firmware validates the fields of eachdata transaction. As shown, the field validation routine starts at step182 and first determines at step 184 what field type is present. If thepresent field is an alphanumeric field, control passes to step 186 wherethe field defaults are processed. It is then determined at step 188whether the user knows the values allowed for this field. If not, anddata is to be implanted in that field, an implant table is searched atstep 190. A “?” may be used by the operator to indicated that he or shedoes not know the values allowed for this field and wishes to search theimplant table. A list of possible values are then called up that matchthe data entered thus far. From this list, the operator can scroll thelist and select the value that will complete the data entry. However, ifthe value is not found in the list, a field error is generated at step192 and the field validation routine is exited at step 194. If the valueis found in the list, control passes to step 200.

On the other hand, if at step 188 it is determined that data need not beadded (implanted) into the present field, control skips to step 196,where it is determined whether the present field type is a field whichsets up an event in which the present field (along with its form) can belinked to any record of any file or files (one to many) of any databasefor the purpose of data verification and/or data extraction. If so,control passes to step 198, where the data from the present field alongwith any other data previously gathered is used to make the desiredlink. As in the data implant step 188 noted above, the user may enter a“?” to get the information needed to make this link. If the data for thelink is not found, a field error is issued at step 192 and the fieldvalidation routine is exited at step 194. However, if the data for thelink is found, the field is checked for blanks at step 200 and a fielderror is issued at step 192 if blanks are present in the field but arenot allowed. If no blanks are found in the present field, or if blanksare found but are allowed, the field validation routine is exited atstep 202.

If it is determined at step 184 that the present field is a numericfield, the field is checked at step 204 to determine if the characterset is valid. If so, the precision of the numbers is adjusted at step206, as necessary, and the range and scope of the numbers are checked atstep 208 to make sure the field entries satisfy the boundary conditions(e.g., no dividing by zero). If the character set is not valid at step204 or the range and scope of the numerals is not valid at step 208, afield error is issued at step 210 and the data validation routine isexited at step 212. Otherwise, the field validation routine is exited atstep 214.

If it is determined at step 184 that the present field is a date/timefield, the field is checked at step 216 to determine if the characterset is valid. If not, a field error is issued at step 210 and the fieldvalidation routine is exited at step 212. Otherwise, a routine of theTAS firmware checks the date/time entry at step 218 to determine if ithas the correct format by performing range checking and the like. If thedate/time entry does not have the correct format, a field error isissued at step 210 and the field validation routine is exited at step212. Otherwise, it is determined at step 220 whether the present fieldcontains a date. If not, the data validation routine is exited at step221. If so, the date is checked at step 222 so see if it contains aweekend, and, if so, checks at step 224 whether a weekend date is anacceptable reply for this field. It is then determined at step 226whether the calendar file is to be checked, and if so, the calendar fileis checked at step 228 to see if the date is valid (e.g., not a February30 and the like). Finally, it is determined at step 230 whether awarning date has been exceeded, and if so, a field error is issued atstep 210 before the field validation routine is exited at step 212.Otherwise, the field validation routine is exited at step 221.

Those skilled in the art will appreciate that, in order to maintainsecurity, the TAS firmware may also present a security form for passwordentry to the user. The security form and ID of the transaction entrydevice 12 is then encrypted and transmitted to the database server 28associated with the particular data transaction assembler 18.Transaction controller 36 of that database server 28 will then act asthe transaction controller for that data transaction assembler 18 andwill check passwords and the like during operation to make certain thatdata security is not breached. Database servers 28 may disable a datatransaction assembler 18 if unauthorized use is attempted. In thismanner, only the appropriate person may view each menu. Of course, adifferent number of security levels and different executive menus may bepresented as desired, all under control of the transaction controller36.

C. Database Server 28

As noted above, the database server 28 acts as a vehicle for separatingdata transactions created by the data transaction assembler 18 into thecomponent parts thereof which may be stored directly in one or moredatabases 30 and 40. In other words, the database server 28 explodes theinitial data transaction into data transactions for many different filesfor updating records in the files, and the like. Also, the databaseserver 28 may be virtual as well as real, exist in a single machine orin multiple machines, in whole or in part.

Generally, the database server 28 handles any and all data transactionsreceived, manipulates data in the data transactions, spawns or startsprocesses or reports requested by a data transaction, and explodes thereceived data transactions into all sorts of data transactions that werespawned by the initial data transaction. Database server 28 can alsoupdate values in existing records and can switch to a process forprocessing values in the records as necessary. In this manner, a singledata transaction can define actions causing multiple files to beupdated. Database server 30 also handles requests from the datatransaction assembler 18 and processes them as needed. Such requests mayinclude data I/O requests, data locking and unlocking, report processes,and requests for new forms or menus. Those skilled in the art willappreciate that database server 28 maintains the one-to-manyrelationships that exist between the user and the system of theinvention, the one-to-many presentations to the user and files in thedatabases 30 and 40, and the one-to-many data transactions and theancillary records, updates, and postings as may be required to diversecomputer files of numerous databases 40, the transaction entry device 12and the database servers 28.

J As noted above, transaction buffer 97 collects the transaction dataassociated with the form presented to the user via display screen 20.The transaction buffer 97 is the image of the data transaction withappropriate locations for each separate data element. The contents ofthe transaction buffer 97 are transferred to the database server 28 viamodem interface 78 or via RF transceiver 90, preceded by a set of codes44 (FIG. 2) which identify the type of transaction followed by a stringof process identifiers for the database server 28 to use in itsprograms, in creating additional data transactions, and in storing thedata and all ancillary transactions within the database 30 in theregular file format of the database 30. In other words, the databaseserver 28 determines what type of action to take based on the type ofdata transaction received, “explodes” a data transaction into aplurality of other data transactions for transmission to otherdatabases, as appropriate, and converts the data for its associateddatabase 30 into the proper file format. Of course, each database server28 is different from each other database server 28 since it will handledifferent types of data transactions, have different operating systemcharacteristics, and different file conversions to make in accordancewith the file formats of its associated database 30. For example, thedatabase server 28 may operate under an operating system such as Unix,Windows, or DOS, where the operating system provides the database server28 with links to the hardware functions normally handled by an operatingsystem. Preferably, the database server 28 also operates with menus,forms, and the like in the same fashion as the data transactionassembler 18 except that it stores the data transactions in itsassociated database 30 as transaction files.

As just noted, the purpose of the database server 28 is to process thedata transaction from the data transaction assembler 18 and to eitherexplode the data transaction into all of its related components forstorage, to handle the storage of items from the explosion process, tostore the data transaction itself for reference purposes, and to act asa supplier of information to the data transaction assembler 18 inresponse to requests during the creation of the data transaction andduring the downloading of parameters for menus and forms to the datatransaction assembler 18. If desired, the database server 28 can alsosupply information back to the data transaction assembler 18 after adata transaction is received or can initiate a process leading to thedelivery of a report, data, or menu to the data transaction assembler18. In addition, the database server 28 and data transaction assembler18 can reside on the same machine so long as the database server'soperating system recognizes the TAS firmware or the TAS firmware ismodified for use with the operating system of the database server 28.

D. Applications of the Invention

As outlined above, the present invention includes a point of transactiondevice which presents a menu to a user from which an option is selected.A form tailored to the selected option appears for guiding the userthrough data entry. The full details of the data transaction arecaptured as data is entered by the user. Modem interaction with acentral database(s) or a user database(s) allows for interaction forhelp and verification of certain entered data. The completed transactionis then transmitted to the central or user database for furtherprocessing and storage. Data input can also be provided via a swipe cardor smart card, from data received from any database accessible via themodem interface, or other known methods.

A data transaction system of this type may be used for manyapplications. For example, in a first, presently preferred, application,the transaction entry device 12 is located in a medical office for entryof patient data. In this application, a swipe card identifies thepatient, a smart card identifies the doctor, and the modem connectionallows the entire claim transaction to be entered and transmitted to theinsurance companies for processing. The patient records may also beautomatically updated and prescriptions created, given to the patient,transmitted to the pharmacist, and transmitted to the payor and patientrecord. Patient instructions such as special diets, exercises,treatments, appointments, and the like may be printed from the datatransaction form at the doctor's central computer. In addition, a videoimage or picture provided via video input 74 and compressed by datacompression circuitry 75 permits an image of a medical condition such asa rash to be appended to the data transaction (in miscellaneousprocessing field 50 of FIG. 2) for transmission with the patient's name,the date, a description of patient symptoms, and the like. Similarly, arecorded heartbeat may be appended to the end of the data transactionfor transmission with the patient data.

The data transaction entry system of the invention also has numeroushome uses. In a preferred home use, the transaction entry device is usedfor performing bank transactions from the home. In this case, formswould be made available by the bank for different types of banktransactions. These forms would then be downloaded to the transactionentry device in the customer's home and used in creating andtransmitting data transactions to the bank computer for off-lineprocessing.

As another example, the user may dial-up to a 900 number to get aninterface to a central database which will download codes into TAS PROM95 or form/menu memory 96 which enable the generation of infraredsignals at certain frequencies. The user needs only to specify the type,make and model of any electronic device to be controlled in order to getthe desired code. Then, to operate any electronic device in the home,the user would be directed by menu prompts. The transaction entry device12 would then emit an infrared signal via infrared transceiver(s) 80 tooperate the electronic device, initiate a call via modem for a broadcastprogram, or initiate timed requests for video recording, turning thevideo recorder on and off, and the like.

For other home uses, the transaction entry device 12 may also initiate,via menu prompts, sequences for turning on and off various householddevices including alarm systems, coffeemakers, and the like. In thismode, the transaction entry device 12 may receive an RF or infraredsignal indicating that a burglar or fire alarm has been activated andcall up a form for calling the police or fire department, asappropriate. A call to the transaction entry device 12 may then be usedto turn off the burglar or fire alarm by changing a field in a formwhich instructs the infrared transceiver 80 or RF transceiver 90 to sendan appropriate control signal to the alarm device. This feature may alsobe prompted from a car phone via remote initiation of the formperforming this function.

The transaction entry device 12 may also control all household telephoneuse as well as controlling the answering machine and keeping a telephonetransaction log. The user may also pay household bills by completing anappropriate form and transmitting the form to a payee such as a creditcard company, a bank, and the like. In short, the transaction entrydevice will permit the owner to connect to a remote database withoutowning a conventional computer system with an operating system and thelike.

For personal applications, the transaction entry device 12 may be usedto initiate a facsimile transmission, to provide telephone lists withautomatic dialing upon selection, to provide expense accounts, personalscheduling, tax record keeping, and the like, and to provide directaccess to travel information. For example, the database server 28 may bean airline reservations system. In this application, the datatransaction assembler 18 dials the modem of the airline reservationssystem when the user requests data entry into an airline reservationsform available at the user's transaction entry device 12. The datatransaction device 18 modems the database server 28, and the operatingsystem of the database server 28 selects interface programs for theairline reservations system. The interface programs call the databaseservers 38 of the airlines, retrieve the appropriate menu from database40, and modem the menu to the data transaction assembler 18. The datatransaction assembler 18 then displays the airline reservations menu onits display screen 20 for completion and transmission back to theairline reservations database server for processing. The swipe card maybe used to provide credit card payment information and may be updated bypermitting the data transaction assembler 18 to write to the swipe card.The user may also access frequent flyer club and mileage data, specialoffers on hotels, cruises and other travel, and the like.

In another home (or business) use, the transaction entry device 12 maybe used to eliminate conventional phone mail greetings by enabling thecaller's transaction entry device 12 to read in a set of visible menusfrom the called party's voice mail menu so that the calling party mayselect the desired options using a visible menu rather than a voicedmenu. In other words, the caller would not have to wait through thelitany of voiced phone mail options before making a selection and couldmake the desired selection right off of his or her own display. Thiswould be accomplished by selecting a process from the menu of thetransaction entry device 12 which will create a “visible” menu. Whensuch a process is selected, the telephone electronics 14 or modeminterface 78 makes a telephone connection to a remote phone mail system.Once the connection is made, the data transaction assembler 18 sends adata request for a visual representation of the phone mail menu of theremote phone mail system via the telephone connection to the remotephone mail system. A data stream containing the visual representation ofthe phone mail menu from the remote phone mail system is then returnedvia the telephone connection and stored in form/menu memory 96 andpresented to display screen 20 of the transaction entry device 12 forselection using the techniques described herein. When menu items areselected from the “visible” voice mail menu, the data transactionassembler 18 creates a data transaction indicating which menu item wasselected and sends the data transaction to the remote phone mail systemvia the telephone connection. Based on the menu selection, the remotephone mail system then returns a data stream containing a visualrepresentation of the next phone mail menu via the telephone connectionfor storage in form/menu memory 96 and display on display screen 20.This process is repeated until the calling party is required to leave amessage or the called party is reached. Such a system would beparticularly helpful for interacting with voice mail systems, such asthose at government offices, where numerous options are presented forselection.

Those skilled in the art will appreciate that the invention is unique byvirtue of its ability to generalize applications to forms so that nocode need to be written to implement a particular function. However, ifcode is needed or if multimedia data is to be part of a datatransaction, it can be attached to a form which is stored as a parameterstream in a stream of data. Also, though the transaction entry device 12has been described as a computer workstation, it can also be used inconjunction with an optional off-line storage device as a self-containedworkstation and database unit independent of traditional operatingsystems. The transaction entry device 12 can also be used with anadditional optional plug in as a network server or as a user interfacein a network docking station.

Those skilled in the art will also appreciate that the foregoing has setforth the presently preferred embodiments of the invention but thatnumerous alternative embodiments are possible without departing from thenovel teachings and advantages of the invention. Accordingly, all suchmodifications arc intended to be included within the scope of theappended claims.

1. A method comprising: receiving data indicative of a form from aremote server; entering data that defines fields of the form; linkingfields of the form to a specified server that is to receive data fromthe form, said linking being based on information associated with theform; and sending the information from the form to the specified server,based on said linking.
 2. A method as in claim 1, wherein there aremultiple servers, and different fields on the form are linked todifferent servers.
 3. A method as in claim 1, wherein said form data isreceived on a portable telephone, and said data is entered from saidportable telephone.
 4. A method comprising: on a portable phone,producing information indicative of a form that is used to producetransaction information; receiving data that defines fields of the form;linking fields of the form to a specified server that is to receive datafrom the form, said linking being based on information associated withthe form; and using the mobile phone to send the information from theform to the specified server, based on said linking
 5. A method as inclaim 4, wherein there are multiple servers, and different fields on theform are linked to different servers.
 6. A method as in claim 4, whereinsaid form data is received on a portable telephone, and said data isentered from said portable telephone.
 7. A method comprising: on aterminal, producing information indicative of a form that is used toproduce transaction information; receiving data by data entry topopulate fields of the form; linking each of the fields of the form to aspecified server that is to receive data from the field, said linkingbeing based on information associated with the form; and sending theinformation from the form to the specified server, based on saidlinking.
 8. A method as in claim 7, wherein there are multiple servers,and different fields on the form are linked to different servers.
 9. Amethod as in claim 7, wherein said form data is received on a portabletelephone, and said data is entered from said portable telephone.
 10. Amethod as in claim 7, further comprising returning information from theserver to at least one other field of the form.
 11. A method,comprising: initiating a data transaction from a terminal by receivinginformation from a user via said terminal; receiving information from anexternally provided device which stores electronic data, into saidterminal; based on information from both said user and said externallyprovided device, sending data transaction information over a channel toa server that processes the data transaction information and returnsinformation.
 12. A method as in claim 11, wherein said externallyprovided card includes personal information
 13. A method as in claim 11,wherein said externally provided card includes medical information. 14.A method as in claim 11, wherein said information is sent to multipleservers.
 15. A method as in claim 11, wherein said terminal is aportable telephone.
 16. A method as in claim 11, wherein said externallyprovided device stores information magnetically.
 17. A method,comprising: initiating a data transaction from a portable telephone byallowing a user to enter information on to the portable telephone;obtaining additional information for the data transaction from anexternally provided device which stores electronic data, into saidterminal; using both said entered information and said information fromthe device, to create data transaction information; sending said datatransaction information over a channel to a server that processes thedata transaction information and returns information based thereon. 18.A method as in claim 17, wherein said externally provided card includespersonal information
 19. A method as in claim 17, wherein saidexternally provided card includes medical information.
 20. A method asin claim 17, wherein said information is sent to multiple servers.
 21. Amethod as in claim 17, wherein said externally provided device storesinformation magnetically.